Remediation scripts/Provision an Azure AD Administrator on SQL Server/PowerShell/Add-ADadminToSql.ps1 (42 lines of code) (raw):
Login-AzAccount
Set-AzContext -Subscription <yourSubscription>
param(
[parameter(Mandatory=$true)]
[string]$SqlServerName,
[parameter(Mandatory=$true)]
[string]$ResourceGroupName,
[parameter(Mandatory=$true)]
[string]$DatabaseName,
[parameter(Mandatory=$true)]
[string]$AdUser
)
$ErrorActionPreference = "Stop"
# First get the SqlServer, then get the database(s)
try {$myDBs = Get-AzSqlServer -ServerName $SqlServerName -ResourceGroupName $ResourceGroupName | Get-AzSqlDatabase}
catch
{
Write-Output "Something went wrong!"
$ErrorMessage = $_.Exception.Message
Write-Output ("Error Message: " + $ErrorMessage)
Break
}
# Set the AzureAD admin account (or group) for each database (or a single one)
foreach($Db in $myDBs){
if ($Db.DatabaseName -eq $DatabaseName){
Write-Output ("Found database: " + $Db.DatabaseName)
Write-Output ("Setting $AdUser as the SQL Admin....")
try
{
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName $Db.ResourceGroupName -ServerName $Db.ServerName -DisplayName $AdUser
Write-Output "Done...verifying..."
Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName $Db.ResourceGroupName -ServerName $Db.ServerName | Format-List
}
catch
{
Write-Output "Something went wrong!"
$ErrorMessage = $_.Exception.Message
Write-Output ("Error Message: " + $ErrorMessage)
Break
}
}
}